s1="hello world"
s2=s1.upper()  #s2=sl.lower() 变小写
print(s1+"*"*5+s2)

e_mail="20413024113@qq.com"
lst=e_mail.split("@")  #分割字符串 列表返回
print(lst[0],"    ",lst[1])

print(e_mail.count("0")) #统计出现几次

print(e_mail.find("0")) #返回首次出现位置     print(e_mail.find("0")) 一样的
print(e_mail.find("9")) #没有返回 -1          print(e_mail.find("9"))  未找到报错

print(e_mail.startswith("20")) #是否以 20 开头
print(e_mail.endswith(s1)) #是否以 s1 结尾

s3=s1.replace("l","卧槽",2);print(s3) # 2为替换个数 不写默认全部替换

print(s3.center(30)) # 指定范围居中输出
print(s3.center(30,"&"))   # 用 & 填充显示

s4="   fj我发的  jf        "
print(s4.strip()) # 去掉左右空格输出 不去中间 用鼠标点可看出空格的存在
print(s4.lstrip()) #去左侧
print(s4.rstrip()) #去右侧
print("*"*40)
s4=s4.strip()
print(s4.strip("jf")) # 去掉左右字符 与输入要去字符顺序无关
print(s4.lstrip("jf")) #去左侧
print(s4.rstrip("jf")) #去右侧


#完成不同类型变量一同输出
# 用占位符 %d %f %s
name='马冬梅'
age=18
hight=168
#print(name+age+hight) 报错的
print("姓名：%s 年龄：%d   身高；%f" % (name,age,hight))
print("姓名：%s 年龄：%d   身高；%.2f" % (name,age,hight))
#用f-string
print("姓名{name} 年龄:{age}   身高；{hight}")
# 用 format
print("姓名{0} 年龄:{2} 身高；{1}".format(name,hight,age)) #里面的0 1 2 对应format()里面的位置序号
print("\n","-"*100,"\n")
s="helloworld"
print('{0:*<20}'.format(s))  #字符串显示宽度为20 左对齐 用*填充 0 是固定语法无意义
print('{0:*>20}'.format(s))  #右对齐
print('{0:*^20}'.format(s))  #中对齐    与print(s3.center(30,"&")) 一样
#千位分隔符 int double 类型用
print("{0:,}".format(1654321543251))
print("{0:,}".format(1654321543251.246156))
print("{0:.2f}".format(251.246156))
print("{0:.2s}".format(s))   # s 可不写

n=123
print("二进制：{0:b}".format(n))
#print("二进制：{0:b},十进制：{0：d},八进制：{0：o},十六进制：{0：x},十六进制：{0：X}".format(n))
#同一行不行啦 明白怎么用就行
n=3444156.1415926
# 科学计数法
print("{0:2E}".format(n))
print("{0:2e}".format(n))
print("{0:8%}".format(0.5361564))
print("{0:1%}".format(0.53615644829874)) # 1还是 8 都一样

